﻿/*
	Copyright (C) 2019 Zongming Liu <1849059316@qq.com>

	This program is free software; you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation; either version 2 of the License, or
	(at your option) any later version.
	
	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.
	
	You should have received a copy of the GNU General Public License along
	with this program; if not, write to the Free Software Foundation, Inc.,
	51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/

#ifndef AudioPlayer_h__
#define AudioPlayer_h__

#include "../utility/NonCopyable.h"
#include <windows.h>
#include <string>
#include <mciapi.h>

namespace SkyEngine2d
{
	class AudioPlayer
		:public NonCopyable
	{
	public:
	
		AudioPlayer();
		~AudioPlayer();
		bool load(const std::wstring & file_path);
		void unload();
		void play(bool is_loop);
		void stop();
		void pause();
		void resume();
		bool isPlaying();
		bool isLoop();
		MCIDEVICEID getMciDev();
		HWND	getWnd();
		const std::wstring getAudioName();
	
	private:
		bool		m_isLoop; 
		bool		m_isPlaying; 
		HWND        m_wnd;
		MCIDEVICEID m_dev;
		bool		m_isLoad;  
		std::wstring m_audioName;  
		friend LRESULT WINAPI proc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
	};
	
}


#endif // AudioPlayer_h__
